package cn.ac.sec.liquid.sys_setting;

import cn.ac.sec.liquid.common.model.UGroup;
import cn.ac.sec.liquid.common.model.URight;
import cn.ac.sec.liquid.common.model.URole;
import cn.ac.sec.liquid.common.model.User;
import com.jfinal.core.Controller;

public class SysSettingController extends Controller {
	
	/**
	 * 用户管理
	 */
	public void userManage() {
		setAttr("userList", User.dao.find("select * from user"));
		render("/sys_setting/user.html");
	}
	
	/**
	 * 添加，无render则页面默认转至当前目录下的add.html
	 */
	public void add() {
		
	}
	
	/**
	 * 保存添加
	 * 同时通过redirect()调用对应的action，从数据重新加载数据进行显示
	 */
	public void save() {
		
		User user = getModel(User.class);
		user.save();
		redirect("/sys_setting/userManage"); 
	}
	
	/**
	 * 编辑
	 * getParaToInt():注入方式获取变量值，是主键值
	 * 流程： 在factory.html界面点击edit编辑，调用edit(),同时传入主键值，在edit()中获取主键，并根据主键获取对象，
	 *     以oilfield为名放入request域中
	 */
	public void edit() {
		System.out.println("edit(),所点击设备主键: " + getParaToInt());
		setAttr("user" + "", User.dao.findById(getParaToInt())); //向edit.html界面传入的数据，在request域中
	}
	
	/**
	 * 更新显示
	 */
	public void update() {
		User user = getModel(User.class);
		user.update();
		redirect("/sys_setting/userManage");
	}
	
	/**
	 * 删除一项设备
	 */
	public void delete() {
		System.out.println("选择删除项主键： " + getParaToInt());
		User.dao.deleteById(getParaToInt());
		redirect("/sys_setting/userManage");
	}
	
	/**
	 * 功能：删除一组数据
	 * 注意：Oilfield.dao.deleteById()函数中必须使用主键primary_id,而不是id才可以
	 */
	public void batchDelete(){
		
		String ids[] = getParaValues("ids");
		for(String id : ids){
			User.dao.deleteById(Integer.valueOf(id));
			//Oilfield.dao.deleteById(31); //测试使用主键删除一行，成功
		}
		redirect("/sys_setting/userManage");
	}
	
	/******************** role *********************/
	
	/**
	 * 角色管理
	 */
	public void roleManage() {
		setAttr("roleList", URole.dao.find("select * from u_role"));
		render("/sys_setting/role.html");
	}
	
	/**
	 * 添加，无render则页面默认转至当前目录下的add.html
	 */
	public void roleAdd() {
		render("/sys_setting/role_add.html");
	}
	
	/**
	 * 保存添加
	 * 同时通过redirect()调用对应的action，从数据重新加载数据进行显示
	 */
	public void roleSave() {
		
		URole uRole = getModel(URole.class);
		uRole.save();
		redirect("/sys_setting/roleManage"); 
	}
	
	/**
	 * 编辑
	 */
	public void roleEdit() {
		setAttr("uRole" + "", URole.dao.findById(getParaToInt())); //向edit.html界面传入的数据，在request域中
	}
	
	/**
	 * 更新显示
	 */
	public void roleUpdate() {
		URole uRole = getModel(URole.class);
		uRole.update();
		redirect("/sys_setting/roleManage");
	}
	
	/**
	 * 删除一种角色
	 */
	public void roleDelete() {
		System.out.println("选择删除项主键： " + getParaToInt());
		URole.dao.deleteById(getParaToInt());
		redirect("/sys_setting/roleManage");
	}
	
	/**
	 * 功能：删除一组数据
	 * 注意：Oilfield.dao.deleteById()函数中必须使用主键primary_id,而不是id才可以
	 */
	public void roleBatchDelete(){
		
		String ids[] = getParaValues("ids");
		for(String id : ids){
			URole.dao.deleteById(Integer.valueOf(id));
		}
		redirect("/sys_setting/roleManage");
	}
	
	/******************** right *********************/
	
	/**
	 * 权限管理
	 */
	public void rightManage() {
		setAttr("rightList", URight.dao.find("select * from u_right"));
		render("/sys_setting/right.html");
	}
	
	/**
	 * 添加，无render则页面默认转至当前目录下的add.html
	 */
	public void rightAdd() {
		render("/sys_setting/right_add.html");
	}
	
	/**
	 * 保存添加
	 * 同时通过redirect()调用对应的action，从数据重新加载数据进行显示
	 */
	public void rightSave() {
		
		URight uRight = getModel(URight.class);
		uRight.save();
		redirect("/sys_setting/rightManage"); 
	}
	
	/**
	 * 编辑
	 */
	public void rightEdit() {
		setAttr("uRight" + "", URight.dao.findById(getParaToInt())); //向edit.html界面传入的数据，在request域中
	}
	
	/**
	 * 更新显示
	 */
	public void rightUpdate() {
		URight uRight = getModel(URight.class);
		uRight.update();
		redirect("/sys_setting/rightManage");
	}
	
	/**
	 * 删除一条权限
	 */
	public void rightDelete() {
		System.out.println("选择删除项主键： " + getParaToInt());
		URight.dao.deleteById(getParaToInt());
		redirect("/sys_setting/rightManage");
	}
	
	/**
	 * 功能：删除一组数据
	 * 注意：Oilfield.dao.deleteById()函数中必须使用主键primary_id,而不是id才可以
	 */
	public void rightBatchDelete(){
		
		String ids[] = getParaValues("ids");
		for(String id : ids){
			URight.dao.deleteById(Integer.valueOf(id));
		}
		redirect("/sys_setting/rightManage");
	}
	
	/******************** group *********************/
	
	/**
	 * 用户组管理
	 */
	public void groupManage() {
		setAttr("groupList", UGroup.dao.find("select * from u_group"));
		render("/sys_setting/group.html");
	}
	
	/**
	 * 添加，无render则页面默认转至当前目录下的add.html
	 */
	public void groupAdd() {
		render("/sys_setting/group_add.html");
	}
	
	/**
	 * 保存添加
	 * 同时通过redirect()调用对应的action，从数据重新加载数据进行显示
	 */
	public void groupSave() {
		
		UGroup uGroup = getModel(UGroup.class);
		uGroup.save();
		redirect("/sys_setting/groupManage"); 
	}
	
	/**
	 * 编辑
	 */
	public void groupEdit() {
		setAttr("uGroup" + "", UGroup.dao.findById(getParaToInt())); //向edit.html界面传入的数据，在request域中
	}
	
	/**
	 * 更新显示
	 */
	public void groupUpdate() {
		UGroup uGroup = getModel(UGroup.class);
		uGroup.update();
		redirect("/sys_setting/groupManage");
	}
	
	/**
	 * 删除一个用户组
	 */
	public void groupDelete() {
		System.out.println("选择删除项主键： " + getParaToInt());
		UGroup.dao.deleteById(getParaToInt());
		redirect("/sys_setting/groupManage");
	}
	
	/**
	 * 功能：删除一组数据
	 * 注意：Oilfield.dao.deleteById()函数中必须使用主键primary_id,而不是id才可以
	 */
	public void groupBatchDelete(){
		
		String ids[] = getParaValues("ids");
		for(String id : ids){
			UGroup.dao.deleteById(Integer.valueOf(id));
		}
		redirect("/sys_setting/groupManage");
	}
}
